﻿	 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RBAC.DAL.Entities
{
	[Serializable]
    public class Domain : BaseEntity
    {
																	public virtual String DomainName { get; set; }
															public virtual String Description { get; set; }
															public virtual IList<Function> Functions { get; set; }
					
        /* note 2 T4 ถ้า attribute type เป็น virtual IList type ต้อง
          สร้าง contructor เพื่อป้องกัน Add list ที่เป็น null */
        public Domain()
        {
									Functions = new List<Function>();
							
				        }

        /* note 2 T4 AddEvaluation และ RemoveEvaluation method จะสร้างก็ต่อเมื่อ
           มี type ที่เป็น virtual IList ***ที่ class ภายใน IList<class??> มี class นี้ เป็น attribute ด้วย */
		   						public virtual void AddFunctions(Function arg)
						{
							//arg.Domain = this;
							Functions.Add(arg);
						}
										    }
}
